package com.dao;

import java.util.List;

import com.hbt.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.bean.ListaPrecios;


public class ListaPreciosDAO {
	private static ListaPreciosDAO instancia = null;
	private static SessionFactory sf = null;

	public static ListaPreciosDAO getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new ListaPreciosDAO();
		} 
		return instancia;
	}
	
	public void grabarListaPrecios(ListaPrecios listaPrecios){
		Session session = sf.openSession();
		session.beginTransaction();
		session.persist(listaPrecios);
		session.flush();
		session.getTransaction().commit();
		session.close();
	}
	
	@SuppressWarnings("unchecked")
	public List<Object[]> getProvPrecio(String codigo, String marca){
       Session session = sf.openSession();
       List<Object[]> lista = session.createQuery("SELECT lista.proveedor.id, MIN(item.rodamiento.precio)as precio " +
       		"FROM ListaPrecios lista JOIN lista.items item " +
       		"WHERE (item.rodamiento.idRodamiento.codigo = :codigo and item.rodamiento.idRodamiento.marca = :marca)  " +
       		"group by lista.proveedor.idProveedor").setString("codigo", codigo).setString("marca", marca).list();
       session.close();
       return lista;
    }

}
